package usbcali.edu.co.pqrs.modelo.control;

import java.util.List;

import usbcali.edu.co.pqrs.modelo.AnexosPqr;
import usbcali.edu.co.pqrs.modelo.MotivoReclamacion;
import usbcali.edu.co.pqrs.modelo.MotivoSolicitud;
import usbcali.edu.co.pqrs.modelo.TipoSolicitudPqr;
import usbcali.edu.co.pqrs.modelo.dto.AnxsXTpSolDTO;
import usbcali.edu.co.pqrs.modelo.dto.MotReclXTpSolDTO;
import usbcali.edu.co.pqrs.modelo.dto.MotSolXTpSolDTO;
import usbcali.edu.co.pqrs.modelo.dto.TipoSolicitudPqrDTO;

/**
 * @author Zathura Code Generator http://code.google.com/p/zathura
 * 
 */
public interface ITipoSolicitudPqrLogic {
	public List<TipoSolicitudPqr> getTipoSolicitudPqr() throws Exception;

	/**
	 * Save an new TipoSolicitudPqr entity
	 */
	public void saveTipoSolicitudPqr(TipoSolicitudPqr entity) throws Exception;

	/**
	 * Delete an existing TipoSolicitudPqr entity
	 * 
	 */
	public void deleteTipoSolicitudPqr(TipoSolicitudPqr entity)
			throws Exception;

	/**
	 * Update an existing TipoSolicitudPqr entity
	 * 
	 */
	public void updateTipoSolicitudPqr(TipoSolicitudPqr entity)
			throws Exception;

	/**
	 * Load an existing TipoSolicitudPqr entity
	 * 
	 */
	public TipoSolicitudPqr getTipoSolicitudPqr(Long idTpSolPqr)
			throws Exception;

	public List<TipoSolicitudPqr> findByCriteria(Object[] variables,
			Object[] variablesBetween, Object[] variablesBetweenDates)
			throws Exception;

	public List<TipoSolicitudPqr> findPageTipoSolicitudPqr(
			String sortColumnName, boolean sortAscending, int startRow,
			int maxResults) throws Exception;

	public Long findTotalNumberTipoSolicitudPqr() throws Exception;

	public List<TipoSolicitudPqrDTO> getDataTipoSolicitudPqr() throws Exception;
	
	
	public void guardarTipoSolicitud(TipoSolicitudPqr tipoSolicitudPqr, List<AnexosPqr> anexos, 
			List<MotivoReclamacion> motivoReclamo, List<MotivoSolicitud> motivoSolicitud)throws Exception;
	
	public void modificarTipoSolicitud(TipoSolicitudPqr tipoSolicitudPqr, List<AnexosPqr> anexos, 
			List<MotivoReclamacion> motivoReclamo, List<MotivoSolicitud> motivoSolicitud)throws Exception;
	
	public List<AnxsXTpSolDTO> anexosXIdTipoSolicitud(Long idTipoSolicitud) throws Exception;
	
	public List<MotSolXTpSolDTO> motSolXIdTipoSolicitud(Long idTipoSolicitud) throws Exception;
	
	public List<MotReclXTpSolDTO> motReclXIdTipoSolicitud(Long idTipoSolicitud) throws Exception;
}
